/*
 * Propiedad de Fernando Lorenta
 * Ejercicios Java PCarrier
 * 
 * Clase para leer de un archivo los datos y cargarlos en un contenedor
 * Nos pasarán (1 ó 2): 
 *
 * 1.- Objeto Boletín.
 * 2.- Objeto Ejercicios.
 *
 * y así saber de que archivo leer.
 */

package Archivos;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.TreeMap;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import objetos.ObjetoBoletin;
import objetos.ObjetoEjercicio;
import ventanaPrincipal.VentanaPrincipal;

/**
 *
 * @author fernan
 */
public class LeerDeArchivo {
    
    private ObjectInputStream ois = null;
    private FileInputStream fis = null;
    private ArrayList contenedor = null;
    private String archivo;
    private VentanaPrincipal ventanaPrincipal;
    
    public LeerDeArchivo() {
    }//public LeerDeArchivo()
    
    //Me pasan un entero que me dirá que archivo (boletines o ejercicios)
    //que voy a leer.
    public LeerDeArchivo(VentanaPrincipal ventanaPrincipal, int tipoObjeto) {
        
        this.ventanaPrincipal = ventanaPrincipal;
        
        if (tipoObjeto == 1) {
            archivo = "boletines.btn";
        }
        else {
            archivo = "ejercicios.eje";
        }            
       
        try {
            fis = new FileInputStream(archivo);
            ois = new ObjectInputStream(fis);
            
            contenedor = new ArrayList();
            
            while (fis.available()>0) {
                contenedor = (ArrayList)ois.readObject();
            }
            
            if (tipoObjeto == 1) {
                ventanaPrincipal.setContenedorBoletines(contenedor);
            }
            else {
                ventanaPrincipal.setContenedorEjerjcicios(contenedor);
            } 
            
        } catch (FileNotFoundException ex) {
            Logger.getLogger(LeerDeArchivo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException | ClassNotFoundException ex) {
            Logger.getLogger(LeerDeArchivo.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        finally {
            if (fis != null) {
                try {               
                    ois.close();
                    fis.close();
                } catch (IOException ex) {
                    Logger.getLogger(LeerDeArchivo.class.getName()).log(Level.SEVERE, null, ex);
                }
                
            }
        }
        
    }//public LeerDeArchivo(String tipoObjeto)
    
}//public class LeerDeArchivo
